<?
    //######################################################
    // примеры кастомных валидаторов
    //######################################################
    //правило  - содержит единичку
    function validate_1($value){
        return (bool)(mb_strpos($value, '1')!==false);
    }
    class Validator{
        //правило - должно быть целым
        static function is_int($value){
            return (bool)intval($value);
        }
        //правило - должно быть нечетным
        function is_odd($value){
            return (bool)($value%2);
        }
    }

    //######################################################
    // форма
    //######################################################

    $form = new jQuickForm('simple');
        $fieldset = $form->insertFieldset('Пример валидации callback');
            $num = $fieldset->insertInputText('num')
                ->setLabel('Число')
                ->setComment('Напишите [целое число], в котором [содержится единичка],
                выбрано [из следующих вариантов (21, 31, 41)] и которое является [нечетным]');

            //Должно быть целым числом
            $num->addRule('callback',
                'Должно быть целым числом',
                array(
                    'callback' => array('Validator','is_int'),
                )
            );

            //Должно содержать единичку
            $num->addRule('callback',
                'Должно содержать единичку',
                array(
                    'callback' => 'validate_1',
                )
            );

            //Должно быть нечетным
            $validator = new Validator();
            $num->addRule('callback',
                'Должно быть нечетным',
                array(
                    'callback' => array($validator,'is_odd'),
                )
            );

            //in_array (пример использования стандартной функции PHP)
            $validator = new Validator();
            $num->addRule('callback',
                'Должно быть выбрано из следующих вариантов (21, 31, 41)',
                array(
                    'callback'  => 'in_array',
                    'arguments' => array(array(21, 31, 41))
                )
            );
        $fieldset->insertInputSubmit('Post!','save');


?>